home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / tex / texsrc.arc / TEX3.C < prev    next >
C/C++ Source or Header  |  1988-09-14  |  44KB  |  2,018 lines

  1. overlay "tex3"
  2. #define EXTERN extern
  3. #include "texd.h"
  4.  
  5. scancharnum () { r_scancharnum 
  6.   scanint () ; 
  7.   if ( ( curval < 0 ) || ( curval > 255 ) ) 
  8.   {
  9.     {
  10.       if ( interaction == 3 ) 
  11.       wakeuptermin () ; 
  12.       printnl ( 133 ) ; 
  13.       print ( 543 ) ; 
  14.     } 
  15.     {
  16.       helpptr = 2 ; 
  17.       helpline [ 1 ] = 550 ; 
  18.       helpline [ 0 ] = 545 ; 
  19.     } 
  20.     interror ( curval ) ; 
  21.     curval = 0 ; 
  22.   } 
  23. scanfifteenb () { r_scanfifteenb 
  24.   scanint () ; 
  25.   if ( ( curval < 0 ) || ( curval > 32767 ) ) 
  26.   {
  27.     {
  28.       if ( interaction == 3 ) 
  29.       wakeuptermin () ; 
  30.       printnl ( 133 ) ; 
  31.       print ( 551 ) ; 
  32.     } 
  33.     {
  34.       helpptr = 2 ; 
  35.       helpline [ 1 ] = 552 ; 
  36.       helpline [ 0 ] = 545 ; 
  37.     } 
  38.     interror ( curval ) ; 
  39.     curval = 0 ; 
  40.   } 
  41. scantwentyse () { r_scantwentyse 
  42.   scanint () ; 
  43.   if ( ( curval < 0 ) || ( curval > 134217727 ) ) 
  44.   {
  45.     {
  46.       if ( interaction == 3 ) 
  47.       wakeuptermin () ; 
  48.       printnl ( 133 ) ; 
  49.       print ( 553 ) ; 
  50.     } 
  51.     {
  52.       helpptr = 2 ; 
  53.       helpline [ 1 ] = 554 ; 
  54.       helpline [ 0 ] = 545 ; 
  55.     } 
  56.     interror ( curval ) ; 
  57.     curval = 0 ; 
  58.   } 
  59. scanfontiden () { r_scanfontiden 
  60.   internalfont f ; 
  61.   halfword m ; 
  62.   do { getxtoken () ; 
  63.   } while ( ! ( curcmd != 10 ) ) ; 
  64.   if ( curcmd == 87 ) 
  65.   f = eqtb [ 4578 ] .hh .v.RH ; 
  66.   else if ( curcmd == 86 ) 
  67.   f = curchr ; 
  68.   else if ( curcmd == 85 ) 
  69.   {
  70.     m = curchr ; 
  71.     scanfourbiti () ; 
  72.     f = eqtb [ m + curval ] .hh .v.RH ; 
  73.   } 
  74.   else { 
  75.     {
  76.       if ( interaction == 3 ) 
  77.       wakeuptermin () ; 
  78.       printnl ( 133 ) ; 
  79.       print ( 670 ) ; 
  80.     } 
  81.     {
  82.       helpptr = 2 ; 
  83.       helpline [ 1 ] = 671 ; 
  84.       helpline [ 0 ] = 672 ; 
  85.     } 
  86.     backerror () ; 
  87.     f = 0 ; 
  88.   } 
  89.   curval = f ; 
  90. zfindfontdime ( writing ) 
  91. boolean writing ; 
  92. {r_findfontdime 
  93.   internalfont f ; 
  94.   integer n ; 
  95.   scanint () ; 
  96.   n = curval ; 
  97.   scanfontiden () ; 
  98.   f = curval ; 
  99.   if ( n <= 0 ) 
  100.   curval = fmemptr ; 
  101.   else { 
  102.     if ( writing && ( n <= 4 ) && ( n >= 2 ) && ( fontglue [ f ] != 0 ) ) 
  103.     {
  104.       deletegluere ( fontglue [ f ] ) ; 
  105.       fontglue [ f ] = 0 ; 
  106.     } 
  107.     if ( n > fontparams [ f ] ) 
  108.     if ( f < fontptr ) 
  109.     curval = fmemptr ; 
  110.     else { 
  111.       do { if ( fmemptr == fontmemsize ) 
  112.     overflow ( 677 , fontmemsize ) ; 
  113.     fontinfo [ fmemptr ] .cint = 0 ; 
  114.     incr ( fmemptr ) ; 
  115.     incr ( fontparams [ f ] ) ; 
  116.       } while ( ! ( n == fontparams [ f ] ) ) ; 
  117.       curval = fmemptr - 1 ; 
  118.     } 
  119.     else curval = n + parambase [ f ] ; 
  120.   } 
  121.   if ( curval == fmemptr ) 
  122.   {
  123.     {
  124.       if ( interaction == 3 ) 
  125.       wakeuptermin () ; 
  126.       printnl ( 133 ) ; 
  127.       print ( 655 ) ; 
  128.     } 
  129.     printesc ( hash [ 3268 + f ] .v.RH ) ; 
  130.     print ( 673 ) ; 
  131.     printint ( fontparams [ f ] ) ; 
  132.     print ( 674 ) ; 
  133.     {
  134.       helpptr = 2 ; 
  135.       helpline [ 1 ] = 675 ; 
  136.       helpline [ 0 ] = 676 ; 
  137.     } 
  138.     error () ; 
  139.   } 
  140. zscansomethin ( level , negative ) 
  141. smallnumber level ; 
  142. boolean negative ; 
  143. {r_scansomethin 
  144.   halfword m ; 
  145.   integer p ; 
  146.   m = curchr ; 
  147.   switch ( curcmd ) 
  148.   {case 84 : 
  149.     {
  150.       scansevenbit () ; 
  151.       if ( m == 5139 ) 
  152.       {
  153.     curval = eqtb [ 5139 + curval ] .hh .v.RH ; 
  154.     curvallevel = 0 ; 
  155.       } 
  156.       else if ( m < 5139 ) 
  157.       {
  158.     curval = eqtb [ m + curval ] .hh .v.RH ; 
  159.     curvallevel = 0 ; 
  160.       } 
  161.       else { 
  162.     curval = eqtb [ m + curval ] .cint ; 
  163.     curvallevel = 0 ; 
  164.       } 
  165.     } 
  166.     break ; 
  167.   case 70 : 
  168.   case 71 : 
  169.   case 85 : 
  170.   case 86 : 
  171.   case 87 : 
  172.     if ( level != 5 ) 
  173.     {
  174.       {
  175.     if ( interaction == 3 ) 
  176.     wakeuptermin () ; 
  177.     printnl ( 133 ) ; 
  178.     print ( 522 ) ; 
  179.       } 
  180.       {
  181.     helpptr = 3 ; 
  182.     helpline [ 2 ] = 523 ; 
  183.     helpline [ 1 ] = 524 ; 
  184.     helpline [ 0 ] = 525 ; 
  185.       } 
  186.       backerror () ; 
  187.       {
  188.     curval = 0 ; 
  189.     curvallevel = 1 ; 
  190.       } 
  191.     } 
  192.     else if ( curcmd <= 71 ) 
  193.     {
  194.       if ( curcmd < 71 ) 
  195.       {
  196.     scaneightbit () ; 
  197.     m = 4066 + curval ; 
  198.       } 
  199.       {
  200.     curval = eqtb [ m ] .hh .v.RH ; 
  201.     curvallevel = 5 ; 
  202.       } 
  203.     } 
  204.     else { 
  205.       backinput () ; 
  206.       scanfontiden () ; 
  207.       {
  208.     curval = 3268 + curval ; 
  209.     curvallevel = 4 ; 
  210.       } 
  211.     } 
  212.     break ; 
  213.   case 72 : 
  214.     {
  215.       curval = eqtb [ m ] .cint ; 
  216.       curvallevel = 0 ; 
  217.     } 
  218.     break ; 
  219.   case 73 : 
  220.     {
  221.       curval = eqtb [ m ] .cint ; 
  222.       curvallevel = 1 ; 
  223.     } 
  224.     break ; 
  225.   case 74 : 
  226.     {
  227.       curval = eqtb [ m ] .hh .v.RH ; 
  228.       curvallevel = 2 ; 
  229.     } 
  230.     break ; 
  231.   case 75 : 
  232.     {
  233.       curval = eqtb [ m ] .hh .v.RH ; 
  234.       curvallevel = 3 ; 
  235.     } 
  236.     break ; 
  237.   case 78 : 
  238.     if ( abs ( curlist .modefield ) != m ) 
  239.     {
  240.       {
  241.     if ( interaction == 3 ) 
  242.     wakeuptermin () ; 
  243.     printnl ( 133 ) ; 
  244.     print ( 536 ) ; 
  245.       } 
  246.       printcmdchr ( 78 , m ) ; 
  247.       {
  248.     helpptr = 4 ; 
  249.     helpline [ 3 ] = 537 ; 
  250.     helpline [ 2 ] = 538 ; 
  251.     helpline [ 1 ] = 539 ; 
  252.     helpline [ 0 ] = 540 ; 
  253.       } 
  254.       error () ; 
  255.       if ( level != 5 ) 
  256.       {
  257.     curval = 0 ; 
  258.     curvallevel = 1 ; 
  259.       } 
  260.       else { 
  261.     curval = 0 ; 
  262.     curvallevel = 0 ; 
  263.       } 
  264.     } 
  265.     else { 
  266.       curval = curlist .auxfield ; 
  267.       if ( m == 1 ) 
  268.       curvallevel = 1 ; 
  269.       else curvallevel = 0 ; 
  270.     } 
  271.     break ; 
  272.   case 79 : 
  273.     {
  274.       nest [ nestptr ] = curlist ; 
  275.       p = nestptr ; 
  276.       while ( abs ( nest [ p ] .modefield ) != 1 ) decr ( p ) ; 
  277.       {
  278.     curval = nest [ p ] .pgfield ; 
  279.     curvallevel = 0 ; 
  280.       } 
  281.     } 
  282.     break ; 
  283.   case 81 : 
  284.     {
  285.       if ( m == 0 ) 
  286.       curval = deadcycles ; 
  287.       else curval = insertpenalt ; 
  288.       curvallevel = 0 ; 
  289.     } 
  290.     break ; 
  291.   case 80 : 
  292.     {
  293.       if ( pagecontents == 0 ) 
  294.       if ( m == 0 ) 
  295.       curval = 1073741823 ; 
  296.       else curval = 0 ; 
  297.       else curval = pagesofar [ m ] ; 
  298.       curvallevel = 1 ; 
  299.     } 
  300.     break ; 
  301.   case 83 : 
  302.     {
  303.       if ( eqtb [ 4056 ] .hh .v.RH == 0 ) 
  304.       curval = 0 ; 
  305.       else curval = mem [(long) eqtb [ 4056 ] .hh .v.RH ] .hh .v.LH ; 
  306.       curvallevel = 0 ; 
  307.     } 
  308.     break ; 
  309.   case 82 : 
  310.     {
  311.       scaneightbit () ; 
  312.       if ( eqtb [ 4322 + curval ] .hh .v.RH == 0 ) 
  313.       curval = 0 ; 
  314.       else curval = mem [(long) eqtb [ 4322 + curval ] .hh .v.RH + m ] .cint ; 
  315.       curvallevel = 1 ; 
  316.     } 
  317.     break ; 
  318.   case 67 : 
  319.   case 68 : 
  320.     {
  321.       curval = curchr ; 
  322.       curvallevel = 0 ; 
  323.     } 
  324.     break ; 
  325.   case 76 : 
  326.     {
  327.       findfontdime ( false ) ; 
  328.       fontinfo [ fmemptr ] .cint = 0 ; 
  329.       {
  330.     curval = fontinfo [ curval ] .cint ; 
  331.     curvallevel = 1 ; 
  332.       } 
  333.     } 
  334.     break ; 
  335.   case 77 : 
  336.     {
  337.       scanfontiden () ; 
  338.       if ( m == 0 ) 
  339.       {
  340.     curval = hyphenchar [ curval ] ; 
  341.     curvallevel = 0 ; 
  342.       } 
  343.       else { 
  344.     curval = skewchar [ curval ] ; 
  345.     curvallevel = 0 ; 
  346.       } 
  347.     } 
  348.     break ; 
  349.   case 88 : 
  350.     {
  351.       scaneightbit () ; 
  352.       switch ( m ) 
  353.       {case 0 : 
  354.     curval = eqtb [ 5317 + curval ] .cint ; 
  355.     break ; 
  356.       case 1 : 
  357.     curval = eqtb [ 5721 + curval ] .cint ; 
  358.     break ; 
  359.       case 2 : 
  360.     curval = eqtb [ 3544 + curval ] .hh .v.RH ; 
  361.     break ; 
  362.       case 3 : 
  363.     curval = eqtb [ 3800 + curval ] .hh .v.RH ; 
  364.     break ; 
  365.       } 
  366.       curvallevel = m ; 
  367.     } 
  368.     break ; 
  369.   case 69 : 
  370.     {
  371.       if ( curchr == 2 ) 
  372.       curval = 0 ; 
  373.       else curval = 0 ; 
  374.       curvallevel = curchr ; 
  375.       if ( ! ( curlist .tailfield >= himemmin ) && ( curlist .modefield != 0 ) 
  376.       ) 
  377.       switch ( curchr ) 
  378.       {case 0 : 
  379.     if ( mem [(long) curlist .tailfield ] .hh.b0 == 12 ) 
  380.     curval = mem [(long) curlist .tailfield + 1 ] .cint ; 
  381.     break ; 
  382.       case 1 : 
  383.     if ( mem [(long) curlist .tailfield ] .hh.b0 == 11 ) 
  384.     curval = mem [(long) curlist .tailfield + 1 ] .cint ; 
  385.     break ; 
  386.       case 2 : 
  387.     if ( mem [(long) curlist .tailfield ] .hh.b0 == 10 ) 
  388.     {
  389.       curval = mem [(long) curlist .tailfield + 1 ] .